package com.hst.capacity.domain.model.response.order;

import lombok.Data;

import java.time.LocalDateTime;

@Data
public class OrderVO {

    private String idOrder;
    private String idMember;//下单用户ID 外键会员登录表
    private String idCorporate;//下单用户所属公司ID 外键企业信息表
    private String corporateName;//用户所属公司名称
    private String idDriver;//订单委派司机ID 外键司机表
    private String idFranchisee;//订单所属服务商ID 外键服务商信息表
    private String idFleet;//车队ID
    private String idBrandHolder;//品牌商ID
    private String fullName;//订单所属服务商全名
    private String idServicePriceType;//价格规则表ID 定价规则表外键
    private Integer idServiceType;//订单服务类型
    private Integer idVehicleType;//订单委派车辆类型ID
    private String idLine;//订单执行线路ID
    private String idTask;//拼车任务表ID
    private String regionCode;//运营区域code值,数据来自行政区域信息表
    private Integer priceRule;//定价规则（0：普通定价 1：基础定价 2：站对点拼车 3：站对点包车）？？ 可舍去
    private Integer orderType;//用车类型（0：实时 1：预约）
    private Integer carpoolType;//用车形式（0:专车 1:城际拼车 2:城际包车 3:城乡拼车 4:城乡包车 8:快车拼车 9:快车包车）
    private Integer carpoolService;//拼车服务要求（0:可拼车可包车 1:不拼车 2:只拼车）

    private String model;
    private String idAirport;//机场ID 外键机场信息表
    private String flightNo;//航班号
    private String idRailwayStation;//高铁站ID 外键高铁站信息表
    private String railNo;//车次编号
    private String idStation;//汽车站ID 外键汽车站信息表
    private Integer inStation;//接送站（0:接站 1:送站）
    private Float additionalMoney;//额外追加调整费用（城际用）
    private String idRelationshipOrder;//关联订单（作废或者拼车用）??
    private Float driverSubsidy;//司机单趟载客保底??
    private Float driverNoLoadSubsidy;//司机空载保底??

    //
    private String userName;//下单用户姓名,数据来自会员信息表
    private String userMobile;//下单用户手机号,数据来自会员信息表
    private String passengerName;//乘车人姓名
    private String passengerMobile;//乘车人联系电话
    private Integer passengerNumber;//乘客数量

    private String plateNumber;//订单执行车辆车牌号
    private String vehicleInfo;//车辆信息（车辆颜色，车辆牌子）,数据保存为json格式
    private LocalDateTime appointmentTime;//用户预约时间
    private LocalDateTime cutOffTime;//用户预约时间
    private LocalDateTime assignTime;//系统派单时间
    private String driverLongitude;//司机接受订单时车辆经度
    private String driverLatitude;//司机接受订单时车辆维度
    private LocalDateTime deptime;//上车时间
    private String startAddress;//上车详细地址
    private String startAddressLongitude;//上车经度
    private String startAddressLatitude;//上车维度
    private String endAddress;//预计下车详细地址
    private String endAddressLongitude;//预计下车经度
    private String endAddressLatitude;//预计下车维度
    private String dropOffArea;//实际下车详细地址
    private String dropOffAreaLongitude;//实际下车经度
    private String dropOffAreaLatitude;//实际下车维度
    private LocalDateTime desttime;//下车时间

    private String baiduStartAddressLongitude;//上车经度
    private String baiduStartAddressLatitude;//上车维度
    private String baiduEndAddressLongitude;//预计下车经度
    private String baiduEndAddressLatitude;//预计下车维度

    private LocalDateTime startServiceTime;//服务开始时间
    private LocalDateTime endServiceTime;//服务结束时间
    private Float referenceDistance;//预计行程距离
    private Integer estimatedTime;//预计花费时间
    private Float estimatedMoney;//预计付款金额

    private String gpsPn;//下单设备信息
    private Float payMoney;//实际付款金额
    private String couponCode;//优惠券码 数据来优惠卷信息表
    private Float couponDiscount;//实际付款时优惠折扣金额
    private Float shopCouponDiscount;//实际付款时优惠折扣金额
    private Integer orderSource;//下单来源（0：电话下单 1：APP下单 2:微信下单 3:网站下单 4:司机补单 5:客户经理下单 6:微信小程序下单 7:录单系统 8:玖玖公务用车系统）
    private Integer paymentType;//支付方式(0,1,2)??
    private Integer paymentStatus;//支付状态(0:未支付 1：待支付 2：已支付)

    private Integer passengerConfirmArrival;//乘客确认到达（0：未确认 1：已确认）

    private Integer status;//订单状态 每种订单类型可能状态设定含义不同
    private Integer divideAccountsStatus = 0;//分账标识（0：未分账 1：已分账 2：已合账）
    private Integer statementStatus = 0;//结算标识（0：未结算 1：已结算）
    private String orderMemo;//运营商备注
    private String driverMemo;//司机备注
    private String passengerMemo;//乘客备注

    private Float orderDistance;
    private Integer orderTime;
    private Float orderMoney;
    private Float orderThanksFee;

    private Float driverIncome;//司机所得
    private int virtualOrderAccepted;//虚拟接单 0:否  1:是

    private String checkStatusMemo;//审核备注
    private Integer checkStatus = 0;//审核状态（0:未审核 1:已审核 2:审核未通过）

}
